package main

import "fmt"

// CRUB
type DBCommon interface {
	Insert(string) error
	Update(string) error
	Delete(string) error
}
type DBconfig struct {
	User string
	Pass string
	Host string
	Port string
	DB   string
}
type MySQL struct {
	config   DBconfig
	chartSet string
}

func (db MySQL) Insert(data string) error {
	fmt.Println("插入数据到MySQL：", data)
	return nil
}
func (db MySQL) Update(data string) error {
	fmt.Println("更新数据到MySQL：", data)
	return nil
}
func (db MySQL) Delete(data string) error {
	fmt.Println("删除数据到MySQL：", data)
	return nil
}

type PostGreSQL struct {
	config   DBconfig
	chartSet string
}

func (p PostGreSQL) Insert(data string) error {
	fmt.Println("插入数据到PostGreSQL：", data)
	return nil
}
func (p PostGreSQL) Update(data string) error {
	fmt.Println("更新数据到PostGreSQL：", data)
	return nil
}
func (p PostGreSQL) Delete(data string) error {
	fmt.Println("删除数据到PostGreSQLL：", data)
	return nil
}
func main() {
	dbType := "mysql"
	//db := DBconfig{"root", "sasa", "127.0.0.1", "3306", "test"}
	//声明一个接口变量
	var dbCommonInterface DBCommon
	if dbType == "pg" {
		var m MySQL
		dbCommonInterface = m
	} else {
		var pg PostGreSQL
		dbCommonInterface = pg
	}
	dbCommonInterface.Update("666")
	dbCommonInterface.Insert("okok")
}
